/***********************************************************************************
 * 文件名： mcu_wdt.h
 * 作者： 黄均铭
 * 版本： 1
 * 说明：
 * 		看门狗驱动。
 * 修改记录：
 * 	2024年1月19日: 初版。 黄均铭。
 ***********************************************************************************/
#ifndef _MCU_WDT_H_
#define _MCU_WDT_H_

#include "mcu.h"

#if _WDT_ENABLE != 0

// 看门狗启动标记
extern bool mWdtEnable;

// 按照配置文件对WDT进行初始化，会启动WDT且不可以再关闭
// 注意，即便是复位，WDT也不可以被关闭或修改寄存器，必须彻底断电一段时间。
// 意味着不断电，直接修改代码配置，即便重新烧录，新的配置也不会生效，需要先断电清除之前的配置。
void Wdt_Init(void);

// 清零WDT计数器（同时会清除掉中断标志）
void Wdt_Clear(void);

// 修改看门狗时间，单位：ms
void Wdt_SetTime(u16 time);

// 暂停看门狗
#define Wdt_Disable() mWdtEnable = false

// 启动看门狗
#define Wdt_Enable() mWdtEnable = true

#else
#define Wdt_Init()
#define Wdt_Clear()
#define Wdt_SetTime(x)
#define Wdt_Disable()
#define Wdt_Enable()

#endif

#endif
